variables
Table of contents
Jekyll 은 작업이 필요한 파일을 찾아 사이트 내부를 이리저리 돌아다닙니다.
작업 대상은 Front matter을 가진 모든 파일입니다.
Jekyll 은 Liquid를 통해 각각의 작업 대상 파일마다 다양한 데이터를 생성합니다. 사용할 수 있는 데이터 목록은 다음과 같습니다.
전역 변수
변수 | 설명 |
---|---|
site | 사이트 정보 + _config.yml 의 환경설정 정보. |
page | 페이지 관련 정보 + Front matter. Front matter에서 설정한 사용자 변수도 여기에 포함된다. |
layout | 레이아웃 관련 정보 + Front matter. Front matter의 레이아웃에 설정한 사용자 변수도 여기에 포함된다. |
content | 레이아웃 파일에서, 랩된 포스트/페이지의 렌더링된 컨텐츠. 포스트나 페이지 파일에서 정의되지 않는다. |
paginator | 이 변수는 환경설정 옵션 paginate 가 설정되어 있을 때 사용할 수 있다.더 자세한 내용에 대해서는 페이지 나누기를 참조. |
사이트 변수
변수 | 설명 |
---|---|
site.time | 현재 시간 (jekyll 명령을 실행한 시간). |
site.pages | 모든 페이지 목록. |
site.posts | 시간 역순의 모든 포스트 목록. |
site.related_posts | 처리중인 파일이 포스트인 경우에, 최대 10 개의 연관 포스트 목록이 이 변수에 할당된다. 디폴트로 가장 최신 포스트 10 개를 가리킨다. 느린 속도를 감수하고 고품질의 결과를 얻으려면, jekyll 명령을 --lsi (Latent Semantic Indexing) 옵션과 함께 실행한다. 단, GitHub Pages 가 사이트를 생성할 때는 lsi 옵션을 지원하지 않는다. |
site.static_files | 정적 파일 (다시 말해, Jekyll 의 변환기나 Liquid 렌더러가 처리하지 않는 파일들) 전체 목록. 모든 파일은 다섯 가지 속성을 갖고 있다: path 와 modified_time , name , basename , extname . |
site.html_pages | .html 로 끝나는 site.pages 목록의 하위 세트. |
site.html_files | .html 로 끝나는 site.static_files 목록의 하위 세트. |
site.collections | 모든 콜렉션 목록 (포스트 포함). |
site.data | _data 디렉토리에 있는 YAML 파일에서 읽어들인 데이터 목록. |
site.documents | 각 콜렉션의 모든 문서 목록. |
site.categories.CATEGORY | CATEGORY 카테고리에 속한 모든 포스트 목록. |
site.tags.TAG | TAG 태그가 붙은 모든 포스트 목록. |
site.url | _config.yml 에 설정한 사이트의 URL.예를 들어, 환경설정 파일에 url: http://mysite.com 라는 내용이 있으면, Liquid 변수 site.url 로 이 값에 접근할 수 있다. 개발 환경에서는 한 가지 예외가 있는데, 개발 환경에서 jekyll serve 를 실행하면 site.url 은 host 와 port , SSL 관련 옵션으로 설정된다. 기본값은 url:http://localhost:4000 이다. |
site.[CONFIGURATION_DATA] | 명령행이나 _config.yml 을 통해 설정된 모든 변수들은 site 변수를 통해 사용할 수 있다. 예를 들어, 환경설정 파일에 foo: bar 가 있다면, site.foo 와 같이 Liquid 로 접근할 수 있다.watch 모드가 켜진 경우에도 _config.yml 파일의 변경사항은 자동으로 적용되지 않기 때문에, 변경된 변수를 적용하려면 Jekyll 을 재시작해야 한다. |
페이지 변수
변수 | 설명 |
---|---|
page.content | 페이지의 컨텐츠. 어떤 Liquid 처리가 되었는지, 어떤 page 인지에 따라 렌더링 되었을 수도 아닐 수도 있다. |
page.title | 페이지의 제목. |
page.excerpt | 렌더링 되지 않은, 문서의 발췌 부분. |
page.url | 도메인을 제외하고, 슬래시 문자로 시작하는 포스트 URL. 예시, /2008/12/14/my-post.html |
page.date | 포스트에 할당된 날짜. 포스트의 Front matter에 YYYY-MM-DD HH:MM:SS (UTC 기준), 또는 YYYY-MM-DD HH:MM:SS +/-TTTT (UTC 로부터의 오프셋을 사용한 타임 존 지정. 예시, 2008-12-14 10:30:00 +0900 ) 형식으로 새로운 날짜/시간을 지정하여 덮어쓸 수 있다. |
page.id | 포스트나 콜렉션의 문서에 대한 유일한 식별자 (RSS 피드에 유용함). 예시, /2008/12/14/my-post /my-collection/my-document |
page.categories | 이 포스트가 속한 카테고리들의 목록. _posts 디렉토리의 상위 디렉토리 구조가 카테고리를 결정한다. 예를 들어, 경로가 /work/code/_posts/2008-12-24-closures.md 인 포스트에서는 이 변수가 ['work', 'code'] 로 설정되어 있다. 이 변수는 Front matter에서도 설정할 수 있다. |
page.collection | 문서가 속한 컬렉션의 label. 예, 하나의 post는 posts , _puppies/rover.md 는 puppies . 컬렉션의 일부분이 아니라면 Empty String이 반환된다. |
page.tags | 포스트에 붙어있는 태그 목록. 이 변수는 Front matter에 설정할 수 있다. |
page.dir | source directory 와 file 사이의 경로 예, /pages/ .front matter의 permalink 에 의해 overrided. |
page.name | filename. 예, about.md |
page.path | 페이지 또는 포스트의 실제 경로. 활용 예시: 페이지 또는 포스트에 대한 GitHub 소스를 링크하기. 이 변수는 Front matter에서 덮어쓸 수 있다. |
page.next | site.posts 의 포스트 중에서 현재 포스트 위치를 기준으로 한 다음 포스트의 상대 경로. 마지막 항목이라면 nil 을 반환한다. |
page.previous | site.posts 의 포스트 중에서 현재 포스트 위치를 기준으로 한 이전 포스트의 상대 경로. 첫 번째 항목이라면 nil 을 반환한다. |
ProTip™: 사용자정의 Front Matter를 사용하세요 모든 사용자정의 Front matter은
page
변수에서 사용할 수 있습니다. 예를 들어, 페이지 Front matter에custom_css: true
를 설정한 경우,page.custom_css
로 해당 값을 사용할 수 있습니다.레이아웃에서 Front matter을 지정했다면,
layout
을 통해 접근할 수 있습니다. 예를 들어, 레이아웃의 Front matter에class: full_page
라고 설정했다면, 해당 레이아웃과 그 부모 레이아웃에서layout.class
로 사용할 수 있습니다.
Paginator
변수 | 설명 |
---|---|
paginator.page | 현재 페이지 번호 |
paginator.per_page | 페이지 당 포스트 수 |
paginator.posts | 현재 페이지의 포스트들 |
paginator.total_posts | 전체 포스트 개수 |
paginator.total_pages | 전체 페이지 개수 |
paginator.previous_page | 이전 페이지 번호. 이전 페이지가 없는 경우 nil |
paginator.previous_page_path | 이전 페이지 경로. 이전 페이지가 없는 경우 nil |
paginator.next_page | 다음 페이지 번호. 다음 페이지가 없는 경우 nil |
paginator.next_page_path | 다음 페이지 경로. 다음 페이지가 없는 경우 nil |
Paginator 변수 사용 위치
이 변수들은 오직 인덱스 파일에서만 사용할 수 있지만,
/blog/index.html
같은 하위 디렉토리에 위치할 수 있다.